package com.kkk.shop.user.service;

import java.util.List;
import java.util.Map;
import com.alibaba.fastjson.JSONObject;
import com.kkk.shop.common.util.PageInfoUtil;
import com.kkk.shop.user.pojo.AAdmins;
import com.kkk.shop.user.pojo.ARole;
import com.kkk.shop.user.pojo.AUsers;
import com.kkk.shop.user.pojo.AUsersAddress;
import com.kkk.shop.user.pojo.AUsersCar;

public interface IUserService
{
	//所有实现类都需要用到
    JSONObject resultJson=new JSONObject();
	JSONObject dataJson=new JSONObject();
	/**
	 * 插入一个管理员服务
	 * 
	 * @param AAdmins
	 * @return JSONObject
	 */
	JSONObject insertOneAdminService(AAdmins admin);

	/**
	 * 更新一个管理员服务
	 * 
	 * @param AAdmins
	 * @return JSONObject
	 */
	JSONObject updateOneAdminService(AAdmins admin);

	/**
	 * 删除一个管理员服务
	 * 
	 * @param AAdmins
	 * @return JSONObject
	 */
	JSONObject deleteOneAdminService(AAdmins admin);

	/**
	 * 查询一个管理员服务
	 * 
	 * @param Map
	 * @return AAdmins
	 */
	AAdmins queryOneAdminsService(Map<String, Object> paramMap);

	/**
	 * 查询多个管理员服务
	 * @param PageInfoUtil 为null不分页,否则进行分页
	 * @param Map
	 * @return List<AAdmins>
	 */
	List<AAdmins> queryMultiAdminsService(PageInfoUtil pageInfoUtil, Map<String, Object> paramMap);
	/* 管理员服务结束 */
	
	/**
	 * 插入一个角色服务
	 * 
	 * @param Arole
	 * @return JSONObject
	 */
	JSONObject insertOneAroleService(ARole role);

	/**
	 * 更新一个角色服务
	 * 
	 * @param Arole
	 * @return JSONObject
	 */
	JSONObject updateOneAroleService(ARole role);

	/**
	 * 删除一个角色服务
	 * 
	 * @param Arole
	 * @return JSONObject
	 */
	JSONObject deleteOneAroleService(ARole role);

	/**
	 * 查询一个角色服务
	 * 
	 * @param Map
	 * @return ARole
	 */
	ARole queryOneAroleService(Map<String, Object> paramMap);

	/**
	 * 查询多个角色服务
	 * @param PageInfoUtil 为null不分页,否则进行分页
	 * @param Map
	 * @return List<ARole>
	 */
	List<ARole> queryMultiAroleService(PageInfoUtil pageInfoUtil, Map<String, Object> paramMap);
	/* 角色服务结束 */
	
	/* 用户地址服务开始 */
	/**
	 * 保存一个用户地址服务
	 * @param usersAddress
	 * @return JSONObject
	 * */
	JSONObject insertOneAUsersAddressService(AUsersAddress usersAddress);
	/**
	 * 更新一个用户地址服务
	 * @param usersAddress
	 * @return JSONObject
	 * */
	JSONObject updateOneAUsersAddressService(AUsersAddress usersAddress);
	/**
	 * 删除一个用户地址服务
	 * @param usersAddress
	 * @return JSONObject
	 * */
	JSONObject deleteOneAUsersAddressService(AUsersAddress usersAddress);
	/**
	 * 查询一个用户地址服务
	 * @param paramMap
	 * @return AUsersAddress
	 * */
	AUsersAddress queryOneAUsersAddressService(Map<String,Object> paramMap);
	
	/**
	 * 查询多个用户地址服务
	 * @param pageInfoUtil
	 * @param paramMap
	 * @return List<AUsersAddress>
	 * */
	List<AUsersAddress> queryMultiAUsersAddressService(PageInfoUtil pageInfoUtil,Map<String,Object> paramMap);
	/* 用户地址服务结束 */
	
	/* 用户服务开始 */
	/**
	 * 保存一个用户服务
	 * @param users
	 * @return JSONObject
	 * */
	JSONObject insertOneAUsersService(AUsers users);
	/**
	 * 更新一个用户服务
	 * @param users
	 * @return JSONObject
	 * */
	JSONObject updateOneAUsersService(AUsers users);
	/**
	 * 删除一个用户服务
	 * @param users
	 * @return JSONObject
	 * */
	JSONObject deleteOneAUsersService(AUsers users);
	/**
	 * 查询一个用户
	 * @param paramMap
	 * @return AUsersAddress
	 * */
	AUsers queryOneAUsersService(Map<String,Object> paramMap);
	
	/**
	 * 查询多个用户
	 * @param pageInfoUtil
	 * @param paramMap
	 * @return List<AUsers>
	 * */
	List<AUsers> queryMultiAUsersService(PageInfoUtil pageInfoUtil,Map<String,Object> paramMap);
	/* 用户地址服务结束 */
	
	/* 购物车服务开始 */
	/**
	 * 保存一个购物车服务
	 * @param usersCar
	 * @return JSONObject
	 * */
	JSONObject insertOneAUsersCarService(AUsersCar usersCar);
	/**
	 * 更新一个购物车服务
	 * @param usersCar
	 * @return JSONObject
	 * */
	JSONObject updateOneAUsersCarService(AUsersCar usersCar);
	/**
	 * 删除一个购物车服务
	 * @param usersCar
	 * @return JSONObject
	 * */
	JSONObject deleteOneAUsersCarService(AUsersCar usersCar);
	/**
	 * 查询一个购物车服务
	 * @param paramMap
	 * @return AUsersAddress
	 * */
	AUsersCar queryOneAUsersCarService(Map<String,Object> paramMap);
	
	/**
	 * 查询多个购物车服务
	 * @param pageInfoUtil
	 * @param paramMap
	 * @return List<AUsers>
	 * */
	List<AUsersCar> queryMultiAUsersCarService(PageInfoUtil pageInfoUtil,Map<String,Object> paramMap);
	/* 用户地址服务结束 */
	
}
